#pragma once

#include "iostream"
#include "vector"
#include "algorithm"
#include "map"
using namespace std;
/*HJJ QQ479287006
 *6176. 出现最频繁的偶数元素 显示英文描述
通过的用户数0
尝试过的用户数0
用户总通过次数0
用户总提交次数0
题目难度Easy
给你一个整数数组 nums ，返回出现最频繁的偶数元素。

如果存在多个满足条件的元素，只需要返回 最小 的一个。如果不存在这样的元素，返回 -1 。



示例 1：

输入：nums = [0,1,2,2,4,4,1]
输出：2
解释：
数组中的偶数元素为 0、2 和 4 ，在这些元素中，2 和 4 出现次数最多。
返回最小的那个，即返回 2 。
示例 2：

输入：nums = [4,4,4,9,2,4]
输出：4
解释：4 是出现最频繁的偶数元素。
示例 3：

输入：nums = [29,47,21,41,13,37,25,7]
输出：-1
解释：不存在偶数元素。

 * */
int mostFrequentEven(vector<int>& nums) {

    map<int,int> mapl;


    for (int i = 0; i <nums.size() ; ++i) {
        if (nums[i]%2==0)
        {
            ++mapl[nums[i]];
        }

    }

    if (mapl.size()==0)
        return -1;

    int retMin=-1;
    int num_s=INT_MAX;
    for (const auto &item : mapl)
    {
        if (item.second>retMin )
        {
            retMin=item.second;
            num_s=item.first;
        }

    }

    return num_s;

}